Private Desktop App Fork Guide
Overview
Create a private fork of the Atom Tauri desktop app with custom branding that connects to your atom-saas backend.
Steps
1. Fork the Repository
# Clone the public repo
git clone https://github.com/rush86999/atom.git atom-desktop-private
cd atom-desktop-private
# Remove origin and add your private repo
git remote remove origin
git remote add origin git@github.com:YOUR_ORG/atom-desktop-private.git
git push -u origin main2. Update Branding
tauri.conf.json
{
"productName": "YourAppName",
"identifier": "com.yourcompany.yourapp",
"app": {
"windows": [
{
"title": "YourAppName"
}
]
}
}Icons
Replace icons in src-tauri/icons/:
icon.icns(macOS)icon.ico(Windows)icon.png(Linux)
Use tauri-icon to generate all sizes:
npx tauri icon /path/to/your-logo.png3. Configure Backend URL
In frontend-nextjs/.env.production:
NEXT_PUBLIC_API_URL=https://your-saas-domain.comOr configure in src-tauri/tauri.conf.json:
{
"build": {
"beforeBuildCommand": "NEXT_PUBLIC_API_URL=https://your-saas-domain.com npm run build"
}
}63:
64: ### 3.1. Desktop Bridge & Satellite (Local Node)
The desktop app includes a built-in "Satellite" bridge that allows the SaaS platform to control local tools (Terminal, Browser) securely.
**Features:**
- **Terminal Access**: Remote shell execution (default: enabled).
- **Browser Control**: Playwright-based local browser automation (default: enabled).
- **Granular Permissions**: Users can toggle these features individually in the UI.
**Dependencies:**
The app automatically manages a Python venv in `~/.atom/venv` for the satellite script.
### 3.2. Docker Requirements (Local Only)
The Desktop App supports executing containerized skills locally. However, it **does not bundle a Docker runtime**.
- **Requirement**: Docker Desktop (or Docker Engine) must be installed and running on the user's machine.
- **Behavior**: If Docker is not running, containerized skills will fail to execute. The app does not attempt to install Docker automatically.
- **Guidance**: Ensure your onboarding documentation instructs users to install Docker if they plan to use containerized agent skills.
### 3.3. Tauri Shell Configuration (Sidecar)
65:
66: To enable the "Sidecar" automation (Python/Node scripts running locally), you must install the shell plugin in your desktop fork:
67:
68: ```bash
69: # In your desktop fork directory
70: npm install @tauri-apps/plugin-shell
71: ```
72:
73: And register it in `src-tauri/src/lib.rs` (Tauri v2):
74: ```rust
75: pub fn run() {
76: tauri::Builder::default()
77: .plugin(tauri_plugin_shell::init()) // Add this line
78: .run(tauri::generate_context!())
79: .expect("error while running tauri application");
80: }
81: ```
82:
83: ### 4. Build Installers
Install dependencies
cd atom-desktop-private
npm install
Build for current platform
npm run tauri build
Output locations:
macOS: src-tauri/target/release/bundle/dmg/
Windows: src-tauri/target/release/bundle/msi/
Linux: src-tauri/target/release/bundle/appimage/
### 5. Cross-Platform Builds (CI/CD)
Add to `.github/workflows/build-desktop.yml`:name: Build Desktop App
on:
push:
tags:
- 'v*'
jobs:
build:
strategy:
matrix:
os: [macos-latest, windows-latest, ubuntu-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
- name: Install Rust
- name: Install dependencies
- name: Build Tauri
- name: Upload artifacts
### 6. Code Signing (Production)
#### macOS
1. Get Apple Developer certificate
2. Set `APPLE_CERTIFICATE` and `APPLE_CERTIFICATE_PASSWORD` in CI secrets
3. Configure notarization in `tauri.conf.json`
#### Windows
1. Get code signing certificate (DigiCert, Sectigo, etc.)
2. Set `TAURI_PRIVATE_KEY` and `TAURI_KEY_PASSWORD` in CI secrets
### 7. Auto-Update (Optional)
Configure in `tauri.conf.json`:{
"plugins": {
"updater": {
"endpoints": [
"https://your-saas-domain.com/api/desktop/updates"
],
"pubkey": "YOUR_PUBLIC_KEY"
}
}
}
Create update endpoint in atom-saas to serve latest versions.
---
## Quick Start Commands
Development
npm run tauri dev
Build (debug)
npm run tauri build --debug
Build (release)
npm run tauri build